// 入口函数

$(function() {

    // 需求1： 点击登录按钮, 显示注册区域, 

    // 隐藏登录区域
    $('.loginBox a').on('click', function() {
        $('.regBox').show();
        $('.loginBox').hide();
    });

    // 点击注册按钮, 显示登录区域, 隐藏注册区域
    $('.regBox a').on('click', function() {
        $('.loginBox').show();
        $('.regBox').hide();
    });
    // ---------------------------------------------------



    // 需求2：自定义校验规则

    // 只要导入 layui.all js 就会多出一个对象 layui
    let form = layui.form;
    // form上面有一个方法叫 verify(); 参数是一个对象， 属性是规则名，属性值是规则

    // 值有两种：数组，函数
    form.verify({
        // 用户名规则
        username: [
            /^[\S]{1,10}$/, '用户名必须1到10位，且不能出现空格' // 大 S 表示空白字符
        ],
        // 密码规则
        pwd: [
            /^[\S]{6,12}$/, '密码必须6到12位，且不能出现空格'
        ],
        // 确认密码规则
        rePwd: function(value) {
            // value就是你给哪个标签添加这个检验规则,
            // 这个标签的值就赋值给value

            let pwd = $(".regBox input[name=password]").val(); // 用 jQuery方式获取输入框的值用 val()
            //如果原密码和确认密码的值不相等，就报错
            if (pwd !== value) {
                return '两次密码输入不一致!'
            }
        }
    });
    // ----------------------------------------------------------------

    // 需求3：注册功能
    let layer = layui.layer;
    $('#formReg').on('submit', function(e) {
        //    阻止表单默认提交 
        e.preventDefault();

        //    发送axios
        axios({
            method: 'POST',
            url: '/api/reguser',
            data: $(this).serialize() // 返回字符串拼接
        }).then(res => {
            // console.log(res.data);
            // 判断返回数据是否正确
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            }
            // 成功后，提示
            layer.msg('恭喜您，注册用户成功！');
            // 切换到登录模块
            $('#formLogin a').click();
            // 清空表单 - DOM元素中，有一个 reset() 可以重置表单;
            $('#formReg')[0].reset();
        });

    });
    // -----------------------------------------------------------------------

    // 需求4：注册功能
    $('#formLogin').on('submit', function(e) {
        // 阻止表单默认提交
        e.preventDefault();

        // 发送axios

        axios({
            method: 'POST',
            url: '/api/login',
            data: $(this).serialize()
        }).then(res => {
            // console.log(res);
            // 判断
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            }
            // 成功：提示，存储token
            layer.msg('恭喜您，登录成功！');
            localStorage.setItem('token', res.data.token);
            // 页面跳转到 index.html
            location.href = "/index.html";
        });
    });
});